<?php

/**
 * This is the model class for table "cliente".
 *
 * The followings are the available columns in table 'cliente':
 * @property string $id
 * @property string $pais_id
 * @property string $zona_id
 * @property string $empregado_id
 * @property string $tipo_pagamento_id
 * @property string $tipo_cliente_id
 * @property string $nome
 * @property string $nif
 * @property string $telefone
 * @property string $telemovel
 * @property string $fax
 * @property string $email
 * @property string $morada1
 * @property string $morada2
 * @property string $cod_postal
 * @property string $saldo_placas
 * @property string $primeira_fatura
 * @property string $conta_corrente
 * @property string $plafond
 * @property double $desconto
 * @property integer $limite_dias_credito
 * @property string $local_descarga
 * @property integer $prazo_medio_recebimento
 * @property integer $atraso_medio_recebimento
 * @property string $created_at
 * @property string $updated_at
 */
class Cliente extends CActiveRecord
{
	/**
	 * Returns the static model of the specified AR class.
	 * @param string $className active record class name.
	 * @return Cliente the static model class
	 */
	public static function model($className=__CLASS__)
	{
		return parent::model($className);
	}

	/**
	 * @return string the associated database table name
	 */
	public function tableName()
	{
		return 'cliente';
	}

	/**
	 * @return array validation rules for model attributes.
	 */
	public function rules()
	{
		// NOTE: you should only define rules for those attributes that
		// will receive user inputs.
		return array(
			array('pais_id, zona_id, empregado_id, tipo_pagamento_id, tipo_cliente_id, nome, nif, telefone, telemovel, fax, email, morada1, morada2, cod_postal, saldo_placas, primeira_fatura, conta_corrente, plafond, desconto, limite_dias_credito, local_descarga, prazo_medio_recebimento, atraso_medio_recebimento', 'required'),
			array('limite_dias_credito, prazo_medio_recebimento, atraso_medio_recebimento', 'numerical', 'integerOnly'=>true),
			array('desconto', 'numerical'),
			array('pais_id, zona_id, empregado_id, tipo_pagamento_id, tipo_cliente_id, saldo_placas, conta_corrente, plafond', 'length', 'max'=>10),
			array('nome, email, morada1, morada2, local_descarga', 'length', 'max'=>255),
			array('nif, cod_postal', 'length', 'max'=>25),
			array('telefone, telemovel, fax', 'length', 'max'=>50),
			array('created_at, updated_at', 'safe'),
			// The following rule is used by search().
			// Please remove those attributes that should not be searched.
			array('id, pais_id, zona_id, empregado_id, tipo_pagamento_id, tipo_cliente_id, nome, nif, telefone, telemovel, fax, email, morada1, morada2, cod_postal, saldo_placas, primeira_fatura, conta_corrente, plafond, desconto, limite_dias_credito, local_descarga, prazo_medio_recebimento, atraso_medio_recebimento, created_at, updated_at', 'safe', 'on'=>'search'),
		);
	}

	/**
	 * @return array relational rules.
	 */
	public function relations()
	{
		// NOTE: you may need to adjust the relation name and the related
		// class name for the relations automatically generated below.
		return array(
		);
	}

	/**
	 * @return array customized attribute labels (name=>label)
	 */
	public function attributeLabels()
	{
		return array(
			'id' => 'ID',
			'pais_id' => 'Pais',
			'zona_id' => 'Zona',
			'empregado_id' => 'Empregado',
			'tipo_pagamento_id' => 'Tipo Pagamento',
			'tipo_cliente_id' => 'Tipo Cliente',
			'nome' => 'Nome',
			'nif' => 'Nif',
			'telefone' => 'Telefone',
			'telemovel' => 'Telemovel',
			'fax' => 'Fax',
			'email' => 'Email',
			'morada1' => 'Morada1',
			'morada2' => 'Morada2',
			'cod_postal' => 'Cod Postal',
			'saldo_placas' => 'Saldo Placas',
			'primeira_fatura' => 'Primeira Fatura',
			'conta_corrente' => 'Conta Corrente',
			'plafond' => 'Plafond',
			'desconto' => 'Desconto',
			'limite_dias_credito' => 'Limite Dias Credito',
			'local_descarga' => 'Local Descarga',
			'prazo_medio_recebimento' => 'Prazo Medio Recebimento',
			'atraso_medio_recebimento' => 'Atraso Medio Recebimento',
			'created_at' => 'Created At',
			'updated_at' => 'Updated At',
		);
	}

	/**
	 * Retrieves a list of models based on the current search/filter conditions.
	 * @return CActiveDataProvider the data provider that can return the models based on the search/filter conditions.
	 */
	public function search()
	{
		// Warning: Please modify the following code to remove attributes that
		// should not be searched.

		$criteria=new CDbCriteria;

		$criteria->compare('id',$this->id,true);
		$criteria->compare('pais_id',$this->pais_id,true);
		$criteria->compare('zona_id',$this->zona_id,true);
		$criteria->compare('empregado_id',$this->empregado_id,true);
		$criteria->compare('tipo_pagamento_id',$this->tipo_pagamento_id,true);
		$criteria->compare('tipo_cliente_id',$this->tipo_cliente_id,true);
		$criteria->compare('nome',$this->nome,true);
		$criteria->compare('nif',$this->nif,true);
		$criteria->compare('telefone',$this->telefone,true);
		$criteria->compare('telemovel',$this->telemovel,true);
		$criteria->compare('fax',$this->fax,true);
		$criteria->compare('email',$this->email,true);
		$criteria->compare('morada1',$this->morada1,true);
		$criteria->compare('morada2',$this->morada2,true);
		$criteria->compare('cod_postal',$this->cod_postal,true);
		$criteria->compare('saldo_placas',$this->saldo_placas,true);
		$criteria->compare('primeira_fatura',$this->primeira_fatura,true);
		$criteria->compare('conta_corrente',$this->conta_corrente,true);
		$criteria->compare('plafond',$this->plafond,true);
		$criteria->compare('desconto',$this->desconto);
		$criteria->compare('limite_dias_credito',$this->limite_dias_credito);
		$criteria->compare('local_descarga',$this->local_descarga,true);
		$criteria->compare('prazo_medio_recebimento',$this->prazo_medio_recebimento);
		$criteria->compare('atraso_medio_recebimento',$this->atraso_medio_recebimento);
		$criteria->compare('created_at',$this->created_at,true);
		$criteria->compare('updated_at',$this->updated_at,true);

		return new CActiveDataProvider($this, array(
			'criteria'=>$criteria,
		));
	}
}